import { QueryInterface } from 'sequelize';

module.exports = {
  // 在执行数据库升级时调用的函数，创建 roles 表
  up: async (queryInterface:QueryInterface, Sequelize) => {
    const { INTEGER, DATE, STRING, BOOLEAN } = Sequelize;
    await queryInterface.createTable('rights', {
      id: {
        type: INTEGER,
        primaryKey: true,
        autoIncrement: true, // 自动创建
      },
      rights_name: { // 权限名称
        type: STRING(255),
        allowNull: false,
      },
      rights_desc: { // 权限描述
        type: STRING(255),
        allowNull: false,
      },
      rights_state: { // 权限状态
        type: BOOLEAN,
        allowNull: true,
        defaultValue: true,
      },
      rights_type: { // 权限类型 (菜单权限，路由权限，请求权限)
        type: STRING(255),
        allowNull: false,
      },
      rights_method: { // 请求权限的方法
        type: STRING(255),
        allowNull: true,
      },
      rights_path: { // 地址路径
        type: STRING(255),
        allowNull: true,
      },
      pid: { // 权限的父级编号
        type: INTEGER,
        allowNull: true,
        defaultValue: 0,
      },
      level: { // 权限等级
        type: INTEGER,
        allowNull: true,
        defaultValue: 0,
      },
      created_at: {
        type: DATE,
      },
      updated_at: {
        type: DATE,
      },
    });
  },
  // 在执行数据库降级时调用的函数，删除 users 表
  down: async (queryInterface:QueryInterface) => {
    await queryInterface.dropTable('rights');
  },
};
